package com.yuzhi.master.sewage.pipe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yuzhi.common.core.page.PageDataInfo;
import com.yuzhi.master.sewage.pipe.domain.DrainPipe;
import com.yuzhi.master.sewage.pipe.domain.bo.DrainPipeBo;
import com.yuzhi.master.sewage.pipe.domain.request.DrainPipeReq;
import com.yuzhi.master.sewage.pipe.domain.vo.DrainPipeVo;

import java.util.Collection;
import java.util.List;
import java.util.Map;

public interface DrainPipeService extends IService<DrainPipe> {

    double getgdzlc();

    List<DrainPipeVo> getPipeLengthByDistrict();

    /**
     * 查询管道信息
     */
    DrainPipeVo queryById(String id);

    /**
     * 查询管道信息列表
     */
    PageDataInfo<DrainPipeVo> queryPageList(DrainPipeReq request);

    /**
     * 查询管道信息列表
     */
    List<DrainPipeVo> queryList(DrainPipeReq request);

    /**
     * 新增管道信息
     */
    Boolean insertByBo(DrainPipeBo bo);

    /**
     * 修改管道信息
     */
    Boolean updateByBo(DrainPipeBo bo);

    /**
     * 根据id删除管道信息
     */
    Boolean deleteById(String id, Boolean isValid);

    /**
     * 校验并批量删除管道信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    /**
     * 查询排水管道列表
     *
     * @param request
     * @return
     */
    List<DrainPipe> queryDrainPipeList(DrainPipeReq request);

    /**
     * 获取排水管道检测数据列表
     *
     * @return
     */
    List<Map<String, Object>> getDrainMonitorData();

    List<Map<String, Object>> getPipeManholeAltGrd(String factId);

    /**
     * 管道统计（管径、管道材质）
     * @return
     */
    Map<String,Map<String,Long>> pipelineStatistics();

}
